package com.ccb.sc.common.modules.order.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ccb.sc.common.entity.BaseEntity;
import com.ccb.sc.common.enums.AuditStatus;
import com.ccb.sc.common.modules.order.enums.OrderRefundType;
import com.ccb.sc.common.modules.order.enums.OrderReturnType;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.math.BigDecimal;

/**
 * <p>
 * 退货单
 * </p>
 *
 * @author ken
 * @since 2020-09-25
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("tb_order_return")
public class OrderReturn extends BaseEntity {

    private static final long serialVersionUID=1L;

    /**
     * 用户ID
     */
    @TableField("member_id")
    private Long memberId;

    /**
     * 审核状态（1 已申请 2 申请通过 3 已拒绝）
     */
    @TableField("audit_status")
    private AuditStatus auditStatus;

    /**
     * 物流公司
     */
    @TableField("logistics_company")
    private String logisticsCompany;

    /**
     * 物流单号
     */
    @TableField("logistics_no")
    private String logisticsNo;

    /**
     * 运费
     */
    @TableField("freight")
    private BigDecimal freight;

    /**
     * 退货说明
     */
    @TableField("memo")
    private String memo;

    /**
     * 订单ID
     */
    @TableField("order_id")
    private String orderId;

    /**
     * 订单总金额
     */
    @TableField("order_amount")
    private BigDecimal orderAmount;

    /**
     * 订单项ID
     */
    @TableField("order_item_id")
    private Long orderItemId;

    /**
     * 商品名称
     */
    @TableField("goods_name")
    private String goodsName;

    /**
     * 商品规格
     */
    @TableField("goods_spec")
    private String goodsSpec;

    /**
     * 规格图片
     */
    @TableField("picture")
    private String picture;

    /**
     * 退货原因
     */
    @TableField("reason")
    private String reason;

    /**
     * 退款金额
     */
    @TableField("refund_amount")
    private BigDecimal refundAmount;

    /**
     * 退款类型（1 钱包 2 原路返回）
     */
    @TableField("refund_type")
    private OrderRefundType refundType;

    /**
     * 售后类型（1退货退款 2仅退款 3换货）
     */
    @TableField("return_type")
    private OrderReturnType returnType;

    /**
     * 配送方式名称
     */
    @TableField("shipping_method")
    private String shippingMethod;

    /**
     * 退货配送状态（1 未发货 2 用户已发货 3 商家已收货）
     */
    @TableField("shipping_status")
    private Integer shippingStatus;

    /**
     * SKU ID
     */
    @TableField("sku_id")
    private String skuId;

    /**
     * 用户凭证
     */
    @TableField("user_credentials")
    private String userCredentials;

    /**
     * 收货人地址
     */
    @TableField("address")
    private String address;

    /**
     * 管理员备注
     */
    @TableField("admin_memo")
    private String adminMemo;

    /**
     * 收货人电话
     */
    @TableField("phone")
    private String phone;

    /**
     * 退货数量
     */
    @TableField("quantity")
    private Integer quantity;

    /**
     * 收货人
     */
    @TableField("receiver")
    private String receiver;

    /**
     * 发货人
     */
    @TableField("shipper")
    private String shipper;


}
